package com.myjavalab.thinkinginjava4;

//: WindError.java
//Accidentally changing the interface

public class WindError {
	public static void tune(InstrumentX i) {
		// ...
		i.play(NoteX.MIDDLE_C);
	}

	public static void main(String[] args) {
		WindX flute = new WindX();
		tune(flute); // Not the desired behavior!
		InstrumentX flute1 = new WindX();
		tune(flute1); // Not the desired behavior!		
	}
} 

class NoteX {
	public static final int MIDDLE_C = 0, C_SHARP = 1, C_FLAT = 2;
}

class InstrumentX {
	public void play(int NoteX) {
		System.out.println("InstrumentX.play()");
	}
}

class WindX extends InstrumentX {
	// OOPS! Changes the method interface:
	public void play(NoteX n) {
		System.out.println("WindX.play(NoteX n)");
	}
}